/**
 * @file wa_win.h
 *
 */

#ifndef _WA_WIN_H
#define _WA_WIN_H

#ifdef __cplusplus
extern "C" {
#endif

/*********************
*      INCLUDES
*********************/
#include "wa_conf.h"
#if USE_WA_WIN != 0
#include <string.h>
#include <stddef.h>
#include <stdbool.h>
#include <stdint.h>
#include "wa_area.h"
#include "wa_obj.h"
#include "wa_mask_draw.h"
#include "wa_wm.h"
#include "wa_font.h"
#include "wa_image.h"
#include "wa_panel.h"
/*********************
*      DEFINES
*********************/

/**********************
*      TYPEDEFS
**********************/

typedef struct
{
	wa_obj* center;
	wa_obj* panel;
	int edge_size;
	wa_result edge_show;
	wa_gui_color edge_color;
}wa_win_ext;

/**********************
* GLOBAL PROTOTYPES
**********************/

void wa_win_module_init(void);
wa_obj* wa_win_create(wa_obj* par);
void wa_win_set_pos(wa_obj* win, int x, int y);
void wa_win_set_size(wa_obj* win, int width, int height);
void wa_win_set_edge_size(wa_obj* win, int edge_size);
void wa_win_set_edge_show(wa_obj* win, wa_result show);
void wa_win_set_callback(wa_obj* win, wa_obj_callback cb);
void wa_win_add_obj(wa_obj* win, wa_obj* obj);
wa_obj* wa_win_get_obj_in_cb(wa_obj* obj);
void wa_win_set_panel_rel_pos(wa_obj* win, int rel_x, int rel_y);
void wa_win_set_panel_rel_size(wa_obj* win, int rel_w, int rel_h);

/**********************
*      MACROS
**********************/

#endif

#ifdef __cplusplus
} /* extern "C" */
#endif

#endif

